{
	//将参数转化为数组
	let arr=Array.of(9,5,2,7);
	console.log(arr);  //[9,5,2,7]
	
	let empty=Array.of();
	console.log(empty);   // []
}
{
	//map对象转数组
	const map=new Map();
	map.set('k1',1);
	map.set('k2',2);
	map.set('k3',3);
	console.log(Array.from(map)); // 二维数组: [["k1",1],["k2",2],["k3",3]]
	
	//set转数组
	const set=new Set();
	set.add(1).add(2).add(3);
	console.log(Array.from(set));  // [1,2,3]
	
	//转换字符串
    //可以把ascii的字符串拆解成一个数据，也可以准确的将unicode字符串拆解成数组
    console.log(Array.from('hello world'));   //  ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d"]
	console.log(Array.from('\u767d\u8272\u7684\u6d77'))// ["白", "色", "的", "海"]
	
	//类数组对象转数组
	/*一个类数组对象必须要有length，且元素属性名必须是数值或者可以转换成数值的字符
	注意：属性名代表了数组的索引号，如果没有这个索引号，转出来的数组中对应的元素就为空*/
	let card={
		0:'haha',
		1:'hehe',
		'2':'heihei',
		length:4
	}
	console.log(Array.from(card));  //  ["haha", "hehe", "heihei", undefined]
}

{
	/*第二个参数，map函数用来对转换中，每一个元素进行加工，并将加工后的结果作为结果数组的元素值*/
	console.log(Array.from([1, 2, 3, 4, 5], (n) => n + 1)); //[2, 3, 4, 5, 6]
}

{
	let arr1={
		add:function(value){
			return value+2;
		}
	}
	let arr2={
		add:function(value){
			return value+5;
		}
	}
	//可使用不同的对象对数据进行不同的处理
	console.log(Array.from(
		[4,5,6,7],
		function(value){
			return this.add(value);
		},
		arr1));   // [6,7,8,9]
	console.log(Array.from(
		[4,5,6,7],
		function(n){
			return this.add(n);
		},
		arr2));  // [9,10,11,12]
}